package com.yeyuanqi.hottop.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 传输给前端的评论视图对象
 *
 * @author yeyuanqi
 * @date 2022/02/28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PageComment {
//    当后端传Long类型给前端, Long类型数据大于17位时。前端拿到的数据: 第16位会四舍五入, 17位后的数据自动用0代替)，在Json中就会出现精度丢失的情况。
//    使用SpringBoot的字段Json序列化方式：
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    //昵称
    private String nickname;
    //评论内容
    private String content;
    //头像(图片路径)
    private String avatar;
    //评论时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    //管理员回复
    private Integer isAdminComment;
    //父评论昵称
    private String parentCommentNickname;
    //回复该评论的评论
    private List<PageComment> replyComments = new ArrayList<>();
}
